iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
AI Engineering

30 天打造高齡智慧健康照護 AI Companion系列 第 6

Day 06|語音對話到底慢在哪?拆解 AI Companion 的延遲

  • 分享至 

  • xImage
  •  

Day 05 已經把 STT、LLM 和 TTS 串成第一版完整語音對話。

目前流程是:

Microphone
↓
VAD
↓
Final STT
↓
LLM
↓
TTS
↓
Playback

今天先不加新功能,而是想看看:

使用者說完之後,到 AI 真正開始說話,中間到底花了多少時間?

延遲從哪裡來?

目前主要可以拆成幾段:

Speech End
↓
Final STT
↓
LLM
↓
TTS
↓
First Audio

其中最關心的是:

Speech End → First Audio

也就是使用者講完,到真正聽見 AI 回答的等待時間。

VAD 也會影響速度

VAD 要判斷使用者是不是真的說完。

如果門檻太短,可能把一句話提早切斷;但如果太長,又會增加等待時間。

例如:

我今天早上……有去附近走一下。

中間的停頓不代表已經說完。

尤其高齡使用者可能說得比較慢,因此之後還需要實際測試適合的 Speech End 門檻。

目前各階段速度

Day 05 的測試大約是:

階段 延遲
Final STT 0.23~0.25 s
LLM 0.48~0.71 s
TTS 0.23~0.52 s

三次完整 Pipeline 測試:

Turn 1:1.61 s
Turn 2:0.99 s
Turn 3:1.14 s

平均:

Speech End → First Audio ≈ 1.25 秒

目前這組資料是用 WAV 音訊測試,因此還不能直接判定哪一段一定是最大的 Bottleneck,但可以先當作後續優化的 Baseline。

現在最大的限制

目前流程基本上是依序執行:

Final STT 完成
↓
等 LLM 全文完成
↓
TTS 開始
↓
等語音完成
↓
播放

即使每個模型本身都不算慢,等待時間還是會一段一段累積。

所以後面真正可以改善的,不一定只是換更快的模型,而是讓不同階段可以同時工作。

Rolling 還不是真正 Streaming

Day 02 已經加入 Rolling Transcription,但目前是每隔固定時間重新辨識累積音訊。

每隔一段時間
↓
重新辨識
↓
更新 Partial

這可以做到接近即時,但還不是真正的 Streaming ASR。

真正 Streaming ASR 會持續接收新的 Audio Chunk,保留前面的辨識狀態,再繼續往下辨識。

下一步:Streaming

下一步準備嘗試:

Streaming ASR
↓
LLM Token Streaming
↓
Sentence / Chunk
↓
Streaming TTS
↓
Playback Queue

再和目前約 1.25 秒的 Baseline 比較,看看 Speech End → First Audio 能不能進一步縮短。


上一篇
Day 05|STT → LLM → TTS:第一次讓 AI Companion 真正開口對話
下一篇
Day 07|讓 AI 邊聽邊回答:打造 Streaming Voice Pipeline
系列文
30 天打造高齡智慧健康照護 AI Companion21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言